CREATE EXTERNAL TABLE IF NOT EXISTS spmi_ods.invoice_record(
id                                                 bigint                         COMMENT '主键ID',
apply_no                                           String                         COMMENT '申请流水号',
invoicing_no                                       String                         COMMENT '开票流水号',
network_id                                         bigint                         COMMENT '开票网点ID',
network_code                                       String                         COMMENT '开票网点编号',
network_name                                       String                         COMMENT '开票网点名称',
network_level_id                                   bigint                         COMMENT '开票网点机构级别ID',
network_level_name                                 String                         COMMENT '开票网点机构级别名称',
financial_center_id                                bigint                         COMMENT '开票财务中心ID',
financial_center_code                              String                         COMMENT '开票财务中心编码',
financial_center_name                              String                         COMMENT '开票财务中心名称',
opt_network_id                                     bigint                         COMMENT '操作网点ID',
opt_network_code                                   String                         COMMENT '操作网点编号',
opt_network_name                                   String                         COMMENT '操作网点名称',
opt_financial_center_id                            bigint                         COMMENT '操作财务中心ID',
opt_financial_center_code                          String                         COMMENT '操作财务中心编码',
opt_financial_center_name                          String                         COMMENT '操作财务中心名称',
opt_franchisee_id                                  bigint                         COMMENT '操作网点所属加盟商ID',
opt_franchisee_code                                String                         COMMENT '操作网点所属加盟商编码',
opt_franchisee_name                                String                         COMMENT '操作网点所属加盟商名称',
company_name                                       String                         COMMENT '公司名称',
company_tax_number                                 String                         COMMENT '公司税号',
company_address                                    String                         COMMENT '公司地址',
company_bank_name                                  String                         COMMENT '公司开户行',
company_bank_no                                    String                         COMMENT '公司银行账号',
company_tel                                        String                         COMMENT '公司电话',
product_name                                       String                         COMMENT '商品名称',
payee                                              String                         COMMENT '收款人',
reviewer                                           String                         COMMENT '复核人',
biller                                             String                         COMMENT '开票员',
kp_type                                            smallint                       COMMENT '开票类型:[1,正票;2,红票]',
invoice_type                                       String                         COMMENT '发票类型:[P,电子增值税普通发票; C,增值税普通发票(纸票); S,增值税专用发票; E,收购发票(电子); F,收购发票(纸质); R,增值税普通发票(卷式)]',
tax_classif_code                                   String                         COMMENT '税务分类编码',
push_type                                          smallint                       COMMENT '推送方式:[-1,不推送; 0,邮箱; 1,手机(默认); 2,邮箱、手机]',
and_open_flag                                      smallint                       COMMENT '代开标志, [0,非代开;1,代开]',
unit_price_tax_flag                                smallint                       COMMENT '单价含税标志, [0,不含税,1,含税]',
customer_id                                        bigint                         COMMENT '客户ID',
customer_code                                      String                         COMMENT '客户编码',
customer_name                                      String                         COMMENT '客户开票名称',
customer_tax_number                                String                         COMMENT '客户开票税号',
customer_address                                   String                         COMMENT '客户地址',
customer_bank_name                                 String                         COMMENT '客户开户行',
customer_bank_no                                   String                         COMMENT '客户银行账号',
customer_tel                                       String                         COMMENT '客户电话',
customer_mobile                                    String                         COMMENT '客户手机号码，用于接收开票通知信息',
customer_email                                     String                         COMMENT '客户邮箱地址，用于接收开票通知信息',
customer_title_type                                smallint                       COMMENT '客户抬头类型:[1,企业;2,个人]',
invoice_remark                                     String                         COMMENT '发票备注',
total_waybill_num                                  bigint                         COMMENT '总票数',
total_waybill_amount                               Double                         COMMENT '总运费',
tax_included_amount                                Double                         COMMENT '含税金额',
tax_free_amount                                    Double                         COMMENT '不含税金额',
tax_amount                                         Double                         COMMENT '税额',
tax_rate                                           Double                         COMMENT '税率',
apply_time                                         timestamp                      COMMENT '申请时间',
data_source                                        smallint                       COMMENT '数据来源: [1,小程序]',
invoicing_status                                   smallint                       COMMENT '开票状态: [-1,待开票; 2,开票完成（ 最终状态）,其他状态分别为: 20,开票中；21,开票成功签章中；22,开票失败；24,开票成功签章失败；3,发票已作废；31,发票作废中]',
invoicing_msg                                      String                         COMMENT '开票结果描述',
invoice_code                                       String                         COMMENT '发票代码',
invoice_number                                     String                         COMMENT '发票号码',
invoice_pdf_url                                    String                         COMMENT '发票PDF地址',
invoice_jpg_url                                    String                         COMMENT '发票图片地址',
invoice_date                                       String                         COMMENT '开票日期',
invoice_check_code                                 String                         COMMENT '发票校验码',
invoice_qr_code                                    String                         COMMENT '发票二维码',
invoice_cipher_text                                String                         COMMENT '发票密文',
invoice_machine_code                               String                         COMMENT '税控设备号（机器编码）',
verify_status                                      smallint                       COMMENT '审核状态: [1,未审核; 2,已审核; 3,已驳回]',
verify_time                                        timestamp                      COMMENT '审核时间',
verify_user_name                                   String                         COMMENT '审核人名称',
verify_network_name                                String                         COMMENT '审核网点名称',
red_rush_status                                    smallint                       COMMENT '红冲状态, [0:正常数据, 1:红冲数据, 2:作废数据]',
enable_flag                                        smallint                       COMMENT '是否启用1:启用 2:禁用',
delete_flag                                        smallint                       COMMENT '是否删除 0否 1是',
update_by                                          bigint                         COMMENT '最后更新人ID',
create_by                                          bigint                         COMMENT '创建人',
create_by_name                                     String                         COMMENT '创建人名称',
update_by_name                                     String                         COMMENT '最后修改人名称',
create_time                                        timestamp                      COMMENT '创建时间',
update_time                                        timestamp                      COMMENT '更新时间',
version                                            bigint                         COMMENT '版本号',
trace_id                                           String                         COMMENT '链路日志',
call_count                                         bigint                         COMMENT '执行次数'
)
COMMENT '开票记录'
PARTITIONED BY (dt STRING COMMENT '更新/创建日期 (yyyy-MM-dd)')
STORED AS PARQUET
LOCATION '/dw/hive/spmi_ods.db/external/invoice_record'
TBLPROPERTIES (
  'parquet.column.index.access'='true'
);